// Copyright 2023 Srhino Co., Ltd. All rights reserved.

package log

import "go.uber.org/zap"

type Logger interface {
	Sync() error

	Debug(...interface{})
	Info(...interface{})
	Warn(...interface{})
	Error(...interface{})
	Panic(...interface{})
	Fatal(...interface{})

	Debugf(string, ...interface{})
	Infof(string, ...interface{})
	Warnf(string, ...interface{})
	Errorf(string, ...interface{})
	Panicf(string, ...interface{})
	Fatalf(string, ...interface{})
}

type WrappedLogger interface {
	Logger

	GetZapLogger() *zap.Logger
	GetSugaredLogger() *zap.SugaredLogger
	GetLogger() Logger
}
